// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import { $http } from '@escook/request-miniprogram'
// main.js，注意要在use方法之后执行
import uView from '@/uni_modules/uview-ui'
Vue.use(uView)
import { BaseUrl } from '@/config/const.js'
import { get_token, reset_token } from '@/auth/token'
// 路由守卫
import '@/utils/graud.js'
// 初始化工具函数
import '@/utils/init.js';
// 如此配置即可
// uni.$u.config.unit = 'rpx'
uni.$http = $http;
// 配置请求根路径
$http.baseUrl = BaseUrl
// 请求开始之前做一些事情
$http.beforeRequest = function(options) {
	// console.log(options,'httpOptions');
	const token = get_token()
	if (token) {
		options.header['X-Access-Token'] = token
	}
	if (options.data?.isFormData) {
		options.header['content-type'] = 'application/x-www-form-urlencoded'
	}
	uni.showLoading({
		title: '数据加载中...',
	})
}
// 请求完成之后做一些事情
$http.afterRequest = function(res) {
	uni.hideLoading()
	if (res.data.code === 401) {
		uni.showToast({
			title: 'token过期，请重新登录',
			duration: 1500,
			icon: 'none',
		})
		// token 失效 重置token并跳转到登录页
		reset_token();
		uni.navigateTo({
			url: '/pages/login/login'
		})
	}
	if (!res.data.success) {
		uni.showToast({
			title: res.data.message,
			duration: 1500,
			icon: 'Error',
		});
	}
	// console.log('afterRequest',res);
}
// 封装的展示消息提示的方法
uni.$showMsg = function(title = '数据加载失败！', duration = 1500) {
	uni.showToast({
		title,
		duration,
		icon: 'none',
	})
}
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
	...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
import { confimMenuExist } from "./utils/fun";
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif